package com.ruoyi.project.visit.service.impl;

import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.visit.domain.DoctorPatient;
import com.ruoyi.project.visit.mapper.DoctorPatientMapper;
import com.ruoyi.project.visit.service.IDoctorPatientService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 患者服务实现类型
 */
@Service
public class DoctorPatientServiceImpl implements IDoctorPatientService {
    @Autowired
    private DoctorPatientMapper doctorPatientMapper;

    /**
     * 新增患者
     * @param doctorPatient
     * @return
     */
    @Override
    public int insertDoctorPatient(DoctorPatient doctorPatient) {

        return doctorPatientMapper.insertDoctorPatient(doctorPatient);
    }

    /**
     * 校验患者身份证号唯一
     * @param doctorPatient
     * @return
     */
    @Override
    public String checkPatientCardUnique(DoctorPatient doctorPatient) {
        Integer patientId = StringUtils.isNull(doctorPatient.getPatientId()) ? -1 : doctorPatient.getPatientId(); // 获取主键。
        DoctorPatient info = doctorPatientMapper.selectByCode(doctorPatient.getPatientCard());
        if(StringUtils.isNotNull(info) && !patientId.equals(info.getPatientId())){ // 判断查询结果非空，且主键不同。
            return UserConstants.NOT_UNIQUE; // 不唯一
        }
        return UserConstants.UNIQUE; // 唯一
    }

    /**
     * 根据身份证号查询患者
     * @param patientCode
     * @return
     */
    @Override
    public DoctorPatient selectByCode(String patientCode) {
        return doctorPatientMapper.selectByCode(patientCode);
    }
}
